
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include "Prueba-ArchConfig.h"

char errorArchConfig= 0;


void traerDeConfig(FILE* filename ,char* aBuscar, void* devolver){

	fscanf(filename,"%s",(char *) devolver);
	while(strcmp(aBuscar, devolver) != 0 ) {
		if(feof(filename)){
			strcpy(devolver , "error");
			// producir error por mal carga de datos de arch de conf//
			errorArchConfig = 1;
			return ;
		}
		fscanf(filename,"%s",(char *) devolver);
	}
	fscanf(filename,"%s",(char *) devolver);
	return ;
}






datosConfigPPD* configPPD(){
	char *pach= "configPPDTemplate.txt";
	FILE *filename;
	filename = fopen(pach , "r");
	if (filename == -1){
		printf("Error en Apertura de Archivo configPPDTemplate.txt \n");
		exit(1);
	}
	archConfigPPD *datoABuscar;
	datosConfigPPD *datoConfig;
	datoABuscar=malloc(sizeof(archConfigPPD));
	datoConfig=malloc(sizeof(datosConfigPPD));

	datoABuscar->modoIncio = "ModoInicio=";
	datoABuscar->direccionIP = "DireccionIP=";
	datoABuscar->puerto = "Puerto=";
	datoABuscar->algoritmoPlanificacion = "AlgoritmoPlanificacion=";
	datoABuscar->puertoConsola ="PuertoConsola=";
	datoABuscar->logs ="Logs=";
	datoABuscar->identificadorDisco ="IdentificadorDisco=";
	datoABuscar->cHS ="CHS=";
	datoABuscar->timeLectura ="TimeLectura=";
	datoABuscar->timeEscritura ="TimeEscritura=";
	datoABuscar->rPM ="RPM=";
	datoABuscar->timeSaltoPista ="TimeSaltoPista=";



	traerDeConfig(filename, datoABuscar->modoIncio, &datoConfig->modoIncio);
	traerDeConfig(filename, datoABuscar->direccionIP, &datoConfig->direccionIP);
	traerDeConfig(filename, datoABuscar->puerto, &datoConfig->puerto);
	traerDeConfig(filename, datoABuscar->algoritmoPlanificacion, &datoConfig->algoritmoPlanificacion);
	traerDeConfig(filename, datoABuscar->puertoConsola, &datoConfig->puertoConsola);
	traerDeConfig(filename, datoABuscar->logs, &datoConfig->logs);
	traerDeConfig(filename, datoABuscar->identificadorDisco, &datoConfig->identificadorDisco);
	traerDeConfig(filename, datoABuscar->cHS, &datoConfig->cHS);
	traerDeConfig(filename, datoABuscar->timeLectura, &datoConfig->timeLectura);
	traerDeConfig(filename, datoABuscar->timeEscritura, &datoConfig->timeEscritura);
	traerDeConfig(filename, datoABuscar->rPM, &datoConfig->rPM);
	traerDeConfig(filename, datoABuscar->timeSaltoPista, &datoConfig->timeSaltoPista);

	if (errorArchConfig == 1){
		printf("Error en los datos del archivo de Configuracion de PPD");
		return NULL;
	}

/*
  	printf("%s",datoABuscar->modoIncio);
	printf("%s\n",&datoConfig->modoIncio);
	printf("%s",datoABuscar->direccionIP);
	printf("%s\n",&datoConfig->direccionIP);
	printf("%s\n",&datoConfig->puerto);
	printf("%s\n",&datoConfig->algoritmoPlanificacion);
	printf("%s\n",&datoConfig->puertoConsola);
	printf("%s\n",&datoConfig->logs);
	printf("%s\n",&datoConfig->identificadorDisco);
	printf("%s\n",&datoConfig->cHS);
	printf("%s\n",&datoConfig->timeLectura);
	printf("%s\n",&datoConfig->timeEscritura);
	printf("%s\n",&datoConfig->rPM);
	printf("%s\n",&datoConfig->timeSaltoPista);
*/
	fclose(filename);

	free(datoABuscar);


	return datoConfig;
}



